/**   
 * @Title: PubDevicePayDetailService.java 
 * @Package com.leesche.zcsp.center.web.service 
 * @Description:() 
 * @author dennies yang
 * @date 2016年9月22日 下午3:54:43 
 * @version V1.0   
 */
package com.leesche.zcsp.node.web.service;

import com.leesche.zcsp.node.web.model.PubDevicePayDetailStatistics;
import com.leesche.zcsp.node.web.model.PubDevicePayDetailStatisticsCriteria;
import com.leesche.zcsp.node.web.service.impl.data.read.InfoAccountDto;
import com.leesche.zcsp.node.web.service.impl.data.read.PubDevicePayDetailStatisticsDto;
import com.leesche.zcsp.node.web.service.impl.data.read.QueryPubDevicePayDetailStatisticsCondition;

import java.util.List;

/**
 * @Title: PubDevicePayDetailService.java
 * @Package com.leesche.zcsp.center.web.service
 * @Description:()
 * @author dennies yang
 * @date 2016年9月22日 下午3:54:43
 * @version V1.0
 */
public interface PubDevicePayDetailStatisticsService
		extends
		BaseService<PubDevicePayDetailStatistics, PubDevicePayDetailStatisticsCriteria, PubDevicePayDetailStatisticsDto, QueryPubDevicePayDetailStatisticsCondition, Long> {

	List<Long> findIncomeDetail(QueryPubDevicePayDetailStatisticsCondition condition);

	/**
	 * @Title: findDeviceIncomeAccount
	 * @Description: TODO( 获取设备的收益账目信息 )
	 * @author Jerry
	 * @date 2016-10-31 06:18:12
	 * @param condition 账目信息查询条件
	 * @return 账目信息集合
	 */
	List<PubDevicePayDetailStatistics> findDeviceIncomeAccount(QueryPubDevicePayDetailStatisticsCondition condition);

	/**
	 * 设备解绑相关账目
	 * @param condition
	 * @return
	 */
	int updateDeviceIncomeAccount(QueryPubDevicePayDetailStatisticsCondition condition);

	/**
	 * 查询12个月所有数据
	 * @param condition
	 * @return
	 */
	List<InfoAccountDto> findInfoAccounts(QueryPubDevicePayDetailStatisticsCondition condition);

	/**
	 * 查询12个月在线支付数据
	 * @param condition
	 * @return
	 */
	List<InfoAccountDto> findOnlinePayment(QueryPubDevicePayDetailStatisticsCondition condition);

	/**
	 * 查询工厂出货设备账目
	 * @param statisticsCondition
	 * @return
	 */
	PubDevicePayDetailStatisticsDto findFactoryByCondition(QueryPubDevicePayDetailStatisticsCondition statisticsCondition);

	/**
	 * @Title: findDeviceProfitByCondition(QueryPubDevicePayDetailStatisticsCondition condition)
	 * @Description: TODO( 根据条件获取用户设备的收入 )
	 * @author Jerry Chan
	 * @date 2017/2/21 14:59
	 */
	List<PubDevicePayDetailStatisticsDto> findDeviceProfitByCondition(QueryPubDevicePayDetailStatisticsCondition condition);

}
